import axios from 'axios'

// 创建axios实例
const instance = axios.create({
  baseURL: 'http://localhost:8082', // 设置基础URL 'https://api.example.com' process.env.VUE_APP_BASE_API
  timeout: 10000, // 设置超时时间
  headers: {
    'Content-Type': 'application/json' // 设置请求头
  }
})

// 添加请求拦截器
instance.interceptors.request.use(config => {
  // 在发送请求之前做些什么，例如添加token到请求头
  // const token = uni.getStorageSync('token') // token是只读的
  console.log("----------测试拦截添加token-----------")
  const token = "jlfkasdlkldajfdakflasjdlfj" // 测试token
  if (token) {
    config.headers['Authorization'] = `Bearer ${token}`
  }
  return config
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 如果没有传token，在请求具体接口的时候，后端判断需要token,
// 则在接收到后端响应的时候，如后端返回的状态码是401，则可跳转登录或做相应的处理。
// 测试ok
// Authorization: Bearer jlfkasdlkldajfdakflasjdlfj

// 添加响应拦截器
instance.interceptors.response.use(response => {
  // 对响应数据做点什么，例如解析JSON数据
  return response.data
}, error => {
  // 对响应错误做点什么，例如显示错误信息
  console.log(error)
  return Promise.reject(error)
})

export default instance

// 在调用接口页面，可以使用封装后的axios实例发送请求。以下是一个示例代码：    
// javascript
// 复制代码
// import axios from '@/utils/axios' // 引入封装后的axios实例

// // 定义一个方法来获取数据
// async function getData() {
//   try {
//     const response = await axios.get('/api/data') // 发送GET请求
//     console.log(response.data) // 打印响应数据
//   } catch (error) {
//     console.log(error) // 打印错误信息
//   }
// }

// getData() // 调用方法获取数据